The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated and complex computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
Years ago, computers were isolated devices that did not communicate with each other. But, today computers are often connected in networks, and a user at one computer, often called a client, may wish to access information at multiple other computers, often called servers, via a network. The network may be a local network that connects computers associated with the same company, e.g., a LAN (Local Area Network), or it may be an external network, such as the Internet or World Wide Web, that connects computers from disparate users and companies. Further, the network may be a combination of local and external networks. Companies typically have multiple computers containing different hardware and software packages, often generically referred to as resources, attached to these networks.
Managing multiple computers attached to networks with resources obtained from a variety of third-party vendors is a difficult task. To aid the system administrator with this task, provisioning management software is available that manages installing, deploying, and maintaining resources in a complex heterogeneous networked environment. This software typically provides a “console” from which resources of a computer attached to the network may be managed. The console typically provides the ability to initialize switches and load balancers, install operating system and software products, configure the network, and apply patches, among other functions. The console typically represents resources as objects of particular classes or categories, e.g., servers. Each object category has specific logical operations that can be performed against it, such as powering on or off a server.
The provisioning management software can be supplemented via automation packages that plug into the provisioning management application and manipulate certain resources. For example, a vendor that supplies a resource can also provide a plug-in to install the resource or to install device drivers for the resource. Further, a vendor that sells network interface cards may provide a plug-in to install device drivers for its cards, where the device drivers implement logical operations to initialize the cards and turn the network interface ports on and off.
Unfortunately, provisioning management applications do not include a mechanism to represent possible resources that the customer does not yet own and a purchase avenue to acquire those resources. Thus, because of the large number of possible vendors, possible resources, and computers attached to a network, a system administrator can experience difficulty in determining what potential resources are available for purchase and installation at which computer.